

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<script type="text/javascript" src="helpman_topicinit.js"></script>

<title>DDL Transformation [Enterprise Architect User Guide]</title>

<meta name="keywords" content="Enterprise Architect, Sparx Systems, UML, MDA-Style Transformation,MDA-Style Transformation DDL Transformation,DDL,DDL Transformation">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<link type="text/css" href="default.css" rel="stylesheet" />
<style type="text/css">
  A, A:Visited
  {
    color: #00F;
  }

  A:Active, A:Hover
  {
    color: #F00;
  }

  OL
  {
    margin: 5px 0 5px 48px;
  }

  UL
  {
    margin-bottom: 3px;
    margin-top: 0;
  }

  #nsr
  {
    background-color: #D4DFFF;
  }

  #nsr A
  {
    text-decoration: none;
  }

  #mainbody
  {
    padding: 8px;
  }

  .p_BodyText
  {
    padding: 5px 0;
  }
</style>



<style type="text/css" media="screen">
  BODY
  {
    background-color: #FFFFFF;
  }

  #nsr
  {
    padding: 6px 6px 0 6px;
    border-bottom: none;
    vertical-align: top;
    z-index: 2;
    visibility: visible;
    left: 0;
    top: 0;
    position: absolute;
  }

  #mainbody
  {
    left: 0;
    top: 0;
    margin: 0;
    position: absolute;
    padding: 10px;
    overflow: auto;
    height: 100%;
    z-index: 1;
    background-repeat: no-repeat;
    background-position: bottom right;
    background-attachment: fixed;
  }
</style>

<style type="text/css" media="print">
  #nsr
  {
    visibility: none;
  }

  #mainbody
  {
    overflow: visible;
  }
</style>
<script type="text/javascript" language="JavaScript" src="nonscroll.js"></script>

</head>
<body scroll="no">

<div id="page">



        <div id="content">
          <div id="content-inner">
          



  
          <div id="nsr">
            <table border="0" cellspacing="0" cellpadding="4" width="100%">
              <tr valign="top">
                <td align="left">
  


                  <p class="p_Heading1"><span class="f_Heading1">DDL Transformation</span></p>



  
                </td>
                <td align="right">
                  <a href="introduction.htm" onmouseover="document.images.main.src='button_main_h.gif'" onmouseout="document.images.main.src='button_main.gif'">
                    <img name="main" src="button_main.gif" border=0 alt="Return to Introduction">
                  </a>&nbsp;
    
                  <a href="ctransformation.htm" onmouseover="document.images.prev.src='button_prev_h.gif'" onmouseout="document.images.prev.src='button_prev.gif'">
                    <img name=prev src="button_prev.gif" border=0 alt="Previous page" />
                  </a>&nbsp;
    
    
    
                  <a href="ejbtransformations.htm" onmouseover="document.images.next.src='button_next_h.gif'" onmouseout="document.images.next.src='button_next.gif'">
                    <img name=next src="button_next.gif" border=0 alt="Next page" />
                  </a>
    
    
                </td>
              </tr>
            </table>
          </div>
          <div id="mainbody">
  


                <p class="p_BodyText"><span class="f_BodyText">The purpose of the DDL Transformation is to create a data model from the logical model, generating a model targeted at the default database type that is ready for DDL generation. The data model can then be used to automatically generate DDL statements to run in one of the Enterprise Architect supported database products.</span></p>
<p class="p_BodyText"><span class="f_BodyText">It uses and demonstrates support in the <a href="intermediarylanguage.htm">intermediary language</a> for the following database-specific concepts:</span></p>
<div style="text-align: left; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 5px 0px 5px 13px;"><table cellspacing="0" cellpadding="0" border="0" style="border: none; border-spacing:0px; border-collapse: collapse;">
<tr style="text-align:left;vertical-align:top;">
<td valign="top" width="93" bgcolor="#e3e6ed" style="width:93px; background-color:#e3e6ed; border: solid 1px #000000;"><p class="p_Tableheader"><span class="f_Tableheader">Table</span></p>
</td>
<td valign="top" width="634" style="width:634px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">Mapped one-to-one onto Class elements.</span></p>
</td>
</tr>
<tr style="text-align:left;vertical-align:top;">
<td valign="top" width="93" bgcolor="#e3e6ed" style="width:93px; background-color:#e3e6ed; border: solid 1px #000000;"><p class="p_Tableheader"><span class="f_Tableheader">Column</span></p>
</td>
<td valign="top" width="634" style="width:634px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">Mapped one-to-one onto attributes.</span></p>
</td>
</tr>
<tr style="text-align:left;vertical-align:top;">
<td valign="top" width="93" bgcolor="#e3e6ed" style="width:93px; background-color:#e3e6ed; border: solid 1px #000000;"><p class="p_Tableheader"><span class="f_Tableheader">Primary Key</span></p>
</td>
<td valign="top" width="634" style="width:634px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">Lists all the columns involved; this ensures that they exist in the Class and creates a primary key method for them.</span></p>
</td>
</tr>
<tr style="text-align:left;vertical-align:top;">
<td valign="top" width="93" bgcolor="#e3e6ed" style="width:93px; background-color:#e3e6ed; border: solid 1px #000000;"><p class="p_Tableheader"><span class="f_Tableheader">Foreign Key</span></p>
</td>
<td valign="top" width="634" style="width:634px; border: solid 1px #000000;"><p class="p_Tabletext"><span class="f_Tabletext">This is a special sort of connector. In the </span><span class="f_Tabletext" style="font-style: italic;">Source</span><span class="f_Tabletext"> and </span><span class="f_Tabletext" style="font-style: italic;">Target</span><span class="f_Tabletext"> sections, lists all of the columns involved; this ensures that they exist and that a matching primary key exists in the destination Class, and creates the appropriate foreign key.</span></p>
</td>
</tr>
</table>
</div>
<p class="p_BodyText"><span class="f_BodyText">The following two diagrams show a typical PIM to Data Model Transformation.</span></p>
<p class="p_BodyText"><span class="f_BodyText" style="font-weight: bold;">The PIM:</span></p>
<p class="p_TextIndentedL2"><img src="pim.png" width="622" height="563" border="0" alt="PIM"></p>
<p class="p_BodyText"><span class="f_BodyText" style="font-weight: bold;">After transformation becomes the PSM:</span></p>
<p class="p_TextIndentedL2"><img src="psm_ddl.png" width="957" height="767" border="0" alt="PSM_DDL"></p>
<p class="p_BodyText"><span class="f_BodyText">Generalizations are handled by providing the child element with a foreign key to the parent element, as in the following diagram. Copy-down inheritance is not supported.</span></p>
<p class="p_TextIndentedL2"><img src="classddlchildparent.png" width="329" height="796" border="0" alt="ClassDDLChildParent"></p>




            </div>
          </div>
        </div>



</div>


</body>
</html>
